Encryption has become, amongst others, an integral part of digital transaction systems, secure digital communications, anonymous data storage and digital vault systems. Many encryption standards, de jure and de facto, are in use today and more are to come. Some of these standards use asymmetric encryption requiring two keys, a public key and a private key, whilst others use symmetric encryption requiring one key. In this latter case the encryption key needs to be securely shared between a digital information source (the “Sender)” and the digital information destination (the “Receiver”).
While encryption standards use a variety of algorithms they have also, in the past, been enhanced by such processes as entropy coding, on the one hand, and changing encryption (crypto-) keys during the encoding process of one file, on the other hand. In the former case of preprocessing via entropy coding before encryption, many existing entropy encoding standards, de jure and de facto, have been or can be used. For the latter case, there are examples of using an initial crypto key plus data from the file's bit stream to create a new crypto key, for example via a hash, for the encoding of the next sample of the file's bit stream.
The problem with most of these approaches is that they do not increase encoding and decoding complexity sufficiently to thwart an attack against a weakened encryption algorithm whether with or without the use of entropy coding. Although it is easy to add complexity and computational intensity to an encryption process it is more difficult to add complexity whilst roughly retaining computational intensity.
Various encryption solutions exist in the prior art yet there has been no solution proposed that adds complexity to an encryption process (rendering the encryption process more secure) while maintaining the system resources required to operate the encryption process in a disproportionate manner.
U.S. Pat. No. 8,127,135 to Ibrahim et al. discloses methods and systems where a first operating system and a second operating system share encrypted information using a first shared key. After a predetermined number of encrypted communications using the first shared key, the two operating systems cooperate to share encrypted communications with a second shared key in order to change the first shared key. Once the first shared key is changed the second shared key is also changed.
U.S. Pat. No. 8,284,945 to Breyel discloses methods and systems where a first encryption key is changed once a volume of data encrypted with that first key exceeds a predetermined threshold, this threshold determined by a particular formula derived to automatically change the key in response to the number of changes that have occurred in view of the amount of encrypted data being transmitted.
U.S. Pat. No. 8,369,525 to Jordan et al. discloses methods and systems for dynamically changing encryption keys wherein a new encryption key is sent in a message having a password key indicator randomly placed in the message text and encrypted with a previous encryption key, and the new encryption key is retrieved from the encrypted message based on the location of the password key indicator.
U.S. Pat. No. 8,487,791 to Korodi et al. discloses methods and systems for entropy encoding and decoding data using parallel coders to encode an overall input sequence as multiple subsequences, which are eventually combined to form an output bit stream. A context model is provided to separate the input sequence into multiple subsequences. Multiple encoded subsequences are extracted from the output bit stream and decoded in parallel to generate a plurality of decoded subsequences which are in turn interleaved to create a reconstructed sequence.
U.S. Pat. No. 8,509,555 to Meany discloses methods and systems for error-resilient entropy coding where a plurality of code words are generated that are representative of data to be encoded. The code words can be generated with first and second portions, with each first portion including information that is representative of predetermined characteristic of an associated second portion, and the second portion associated with a portion of the data to be encoded.
U.S. Pat. No. 8,514,943 to Lee et al. discloses methods and systems for enhancing the performance of entropy coding by coding a first coefficient without loss, which includes obtaining a distribution of a second coefficient included in an area of a base layer corresponding to a block of a predetermined layer among coefficients generating when coding data, selecting a suitable lookup table, and transforming the first coefficient into a value mapped on to the selected lookup table.
U.S. Publication No. 2002/0025040 to Stein discloses methods and apparatus for generating an encryption key, where a randomly ordered sequence of bytes is retrieved from memory and each byte in the sequence is assigned to a number of groups, where the number of the groups is defined by the number of bytes in the encryption key. Each group is then in turn reduced to a single byte to generate one of the resultant bytes of the encryption key.
Therefore, there is need for a more thwart-proof method and system for bit stream pre-processing before encryption which adds complexity without significantly adding to computational complexity.
This background information is provided to reveal information believed by the applicant to be of possible relevance to the present invention. No admission is necessarily intended, nor should be construed, that any of the preceding information constitutes prior art against the present invention.